package cn.com.sise.dao;


import cn.com.sise.pojo.Feedback;
import cn.com.sise.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface FeedbackDao {
    /**
     * 增加反馈
     *
     * @param feedback 反馈信息
     * @return int
     */
    int insertFeedback(Feedback feedback);

    /**
     * 通过id删除信息
     *
     * @param feedback 反馈信息
     * @return int
     */
    int deleteFeedback(Feedback feedback);

    /**
     * 通过id修改信息
     *
     * @param feedback
     * @return int
     */
    int updateFeedback(Feedback feedback);

    /**
     * 根据反馈ID查询反馈信息
     *
     * @param feedback_id 反馈ID
     * @return Feedback
     */
    Feedback selectFeedbackByFeedId(@Param("feedback_id") int feedback_id);

    /**
     * 通过userId查询反馈意见
     *
     * @param i 限制的前几条评论
     * @return List<User>
     */
    List<User>
    selectFeedbackLimit(@Param("i") int i);

    /**
     * 通过username模糊查询反馈意见
     *
     * @param name 模糊字段
     * @return List<User>
     */
    List<User> selectFeedbackByUsername(@Param("name") String name);

    /**
     * 根据user_id查询用户反馈
     *
     * @param user_id 用户ID
     * @param start   开始页
     * @param count   总页数
     * @return List<Feedback>
     */
    List<Feedback> selectFeedbackByUserID(@Param("user_id") int user_id, @Param("start") int start, @Param("count") int count);

    /**
     * 根据user_id查询用户反馈
     *
     * @param user_id 用户ID
     * @return List<Feedback>
     */
    List<Feedback> getFeedbackById(@Param("user_id") int user_id);

    /**
     * 获取指定用户反馈的总数
     *
     * @param user_id 用户ID
     * @return int
     */
    int getTotalFeedbackByUserID(@Param("user_id") int user_id);

    /**
     * 获取当前时间的反馈数
     *
     * @param time 年
     * @return int
     */
    int getTimeForFeedback(@Param("time") String time);

    /**
     * 获取系统中反馈的总数
     *
     * @return int
     */
    int getFeedbackTotal();
}
